<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    
  </style>
</head>
<body>
  
</body>
<script>

  // 实例的方法
  // const p1 = new Promise(()=>{})
  // p1.then()
  // p1.catch()

  // ==========

  const p1 = ajax("接口A");
  const p2 = ajax("接口B");
  const p3 = ajax("接口C");

  // 类的方法
  // 批处理多个promise实例的全部成功，才执行then，只要有一个失败，就执行catch
  // （可以将多个promise实例打包成一个promise实例再做处理）
  // const bigP = Promise.all([p1, p2, p3]);
  // bigP.then(res=>{
  //   console.log(res);
  // });
  // bigP.catch(code=>{
  //   console.log(code);
  // });

  // 批处理多个promise实例的只要有一个结束，根据结束了的这个promise的状态决定最终状态
  // （可以将多个promise实例打包成一个promise实例再做处理）
  // const bigP = Promise.race([p1, p2, p3]);
  // bigP.then(res=>{
  //   console.log(res);
  // });
  // bigP.catch(code=>{
  //   console.log(code);
  // });
  

  function ajax(url){
    return new Promise((resolve, reject)=>{
      setTimeout(()=>{
        resolve(url + "成功了")
      },Math.random()*500)

      setTimeout(()=>{
        reject(url + "失败了")
      },Math.random()*1000)
    })
  }
</script>
</html>